package cn.supermarket.service.iservice;

import cn.supermarket.pojo.dto.AddVipDTO;
import cn.supermarket.pojo.dto.VipInfoDTO;
import cn.supermarket.pojo.vo.VipSimpleVO;


import java.math.BigDecimal;
import java.util.List;

/**
 * 会员信息维护
 * @author theThe
 */
public interface IVIPService {

    /**
     * 注册会员
     * @param addVipDTO 用户填写的信息
     */
    void regVip(AddVipDTO addVipDTO);


    /**
     * 根据手机号查询会员信息
     * @param phone 手机号
     * @return 会员信息
     */
    VipSimpleVO getVipSimpleByPhone(String phone);


    /**
     * 修改会员基本信息
     * @param vipInfoDTO 会员基本信息
     */
    void updateVipInfo(VipInfoDTO vipInfoDTO);


    /**
     * 根据手机号充值会员储值卡余额
     * @param phone 会员手机号
     * @param amount 充值金额
     */
    void addAmount(String phone , BigDecimal amount);

    /**
     * 根据手机号消费会员储值卡余额
     * @param phone 会员手机号
     * @param amount 消费金额
     */
    void subAmount(String phone , BigDecimal amount);


    /**
     * 根据会员手机号会员注销
     * @param phone 会员手机号
     */
    void updateCancel(String phone);


    /**
     * 导出会员列表
     * @return 会员列表
     */
    List<VipSimpleVO> getVipList();
}
